5 - Introduction to Software Engineering [ID:49861]
50 von 895 angezeigt

Okay, willkommen zurück zu Software Engineering und ich hoffe, dass wir auch heute wieder eine

schöne Vorlesung haben werden. Ich habe mir gedacht, vielleicht sollten wir mal mit einem

Beispiel anfangen, was gerade so in der Welt passiert. Ich meine, wir lesen hier Software

Engineering, schauen uns mit den ganzen Prozessen an, wie man im Arbeitsleben programmieren wird.

Aber eine Sache, auf die wir noch nicht so eingegangen sind, wir aber am Ende des Semesters

eingeben werden, ist, was gerade so in der Welt der Programmierer passiert. Ich bin mir ziemlich

sicher, dass Sie sowas schon gesehen haben. Ich wollte es nur noch mal zeigen, weil mit

maschinellen Lernen und Large Language Models wird sich auch das Programmieren in Zukunft

verändern. Ich denke, dass wir auch zum Ende des Semesters noch mal ein bisschen Zeit nehmen

sollten, um darüber nachzugehen, wie uns das auch in der täglichen Arbeit beeinflussen kann.

Ich habe hier ein Beispiel für meinen GitHub-Account. Die Quellen sind auch alle

Quellen offen, wenn sich jemand noch mal im Detail angucken wird. Weil wir tatsächlich mit

neuen Machine Learning Technologien, insbesondere Large Language Models, nicht nur in der Lage sind,

Texte zu generieren, sondern auch Programmcode. Das ist ziemlich gut. Das Beispiel, das ich hier

gerade zeige, habe ich über Weihnachten geschrieben, Größenordnung, fünf Stunden hat das Ganze

gedauert, und zwar tatsächlich einen Twitter-Bot zu schreiben. Ich habe noch nie die Python Twitter

API benutzt, ich habe noch nie die Python Google Translate API benutzt, aber die Idee war es quasi

einen automatisierten Account zu schreiben, der alles, was auf erlang.de über den Twitter-Account

kommt, automatisch übersetzt. Das hat sich als sehr, sehr einfach herausgestellt. Ich habe hier

einfach nur den Quellcode noch mal dabei. Was hier in den Kommentaren steht, ist der Prompt,

also die Anfrage an JetGPT, das ist noch die freie Version, die hier benutzt wurde, wie das

Ganze generiert wurde. Ich dachte, es ist einfach nett, sich das hier mal anzugucken,

also insbesondere für so Fingerübungen. Häufig hat man so Geschichten wie, man möchte, also zum

Beispiel auf Twitter muss ja alles 140 Zeichen lang sein, und die Übersetzung von einem 140

Zeichen langen Tweet ist ja nicht notwendigerweise auch 140 Zeichen lang, sondern manchmal länger.

Und dann macht man halt so Zeug, was das in mehrere Tweets aufteilt, und der ganze Code darunter

ist automatisch generiert, also der Python-Code hier, dieses ganze Stück Python-Code hier, ist

automatisch generiert aus der Anfrage. Write a Python-Function that converts a string into an

array of strings. Each string in the array is shorter than 180 characters containing complete

words from the original long string. Furthermore, the strings in the array are marked with an index

1 over n to n to n, where n is the length of the array. Also diese Anweisung bitte in n verschiedene

Untertweets zerlegen, so dass immer ganze Wörter drin sind, hat er komplett umgesetzt und letzten

Endes, was macht das? Es detektiert die ganzen Leerzeichen, also tut das Ganze in Wörter auftrennen

und fängt dann an mitzuzählen, bis die Grenze von 140 Zeichen erreicht wird und fügt dann immer

am Ende die Marke ein, der Wiefelte von Endtweets das ist. Tatsächlich habe ich ihn auch als

händisch korrigiert, er hat die Marke nicht am Ende, sondern am Anfang eingefügt. Das war der

einzige Fehler, der in dem Code drin war. Und die restlichen Sachen programmiertechnisch ging es

extrem schnell, auch Google Translate, API ansteuern usw., hatte ich noch nie gemacht,

wirklich kein Problem. Die Hälfte der Zeit habe ich gebraucht, um Accounts bei Google und bei

Twitter anzulegen, um die entsprechenden API Keys zu bekommen. Das war die Hälfte der Zeit,

die ich nur auf den Webseiten verbracht habe, um herauszufinden, wie ich jetzt quasi an die

Programmierinterfaces komme und dort auch entsprechend das durchsetzen kann. Also Wahnsinn,

was sich in der Softwareentwicklung tut und ich denke, das ist auch etwas, was wir vielleicht im

Hinterkopf haben könnten, wenn wir über Systemarchitekturen reden und Kommunikation

usw., wenn wir z.B. vier Augen Programmierprinzipien usw. haben, dass beispielsweise auch ein

automatisiertes System dabei helfen kann, besseren Code zu bauen. Also insbesondere, wir hatten ja

in der letzten Vorlesung den Vorstieg des Test Cases von externen entwickelt werden sollten,

weil die sich enger an die Spezifikation halten und nicht durch irgendwelche Vorgaben,

die sich der Programmierer selber gemacht hat, beeinflusst werden. Das könnte z.B. auch von der

KI kommen. Oder auch Dokumentation ist extrem wichtig. Dokumentation kann natürlich hier aus

Zugänglich über

Offener Zugang

Dauer

01:29:52 Min

Aufnahmedatum

2023-11-16

Hochgeladen am

2023-11-16 22:09:05

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen